package cn.codeforfun.common;


import cn.codeforfun.controller.IndexController;
import cn.codeforfun.jfinalplugin.activemq.core.ActiveMqPlugin;
import cn.codeforfun.mq.queue.ActiveMqQueue;
import cn.codeforfun.mq.topic.*;
import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.render.ViewType;

/**
 * API引导式配置
 */
public class DemoConfig extends JFinalConfig {

    /**
     * 配置常量
     */
    public void configConstant(Constants me) {
        // 加载少量必要配置，随后可用PropKit.get(...)获取值
        me.setViewType(ViewType.JSP);
        me.setDevMode(true);
    }

    /**
     * 配置路由
     */
    public void configRoute(Routes me) {
        me.add("/", IndexController.class);    // 第三个参数为该Controller的视图存放路径
    }


    /**
     * 配置插件
     */
    public void configPlugin(Plugins me) {
        //配置队列插件
        ActiveMqPlugin mqPlugin = new ActiveMqPlugin();
        mqPlugin.addQueue(new ActiveMqQueue("queue1"));
        mqPlugin.addQueue(new ActiveMqQueue("queue2"));
        mqPlugin.addTopic(new ActiveMqTopic("topic1")
                .listener("listener1").listener("listener2"));
        mqPlugin.addTopic(new ActiveMqTopic("topic2")
                .listener("listener1").listener("listener2"));
        me.add(mqPlugin);
    }

    /**
     * 配置全局拦截器
     */
    public void configInterceptor(Interceptors me) {
    }

    /**
     * 配置处理器
     */
    public void configHandler(Handlers me) {

    }

    public void afterJFinalStart() {
        System.out.println(JFinal.me().getAllActionKeys().toString());
    }

}
